The transfer of moving pictures and associated audio in digital form typically requires compressing the audio/video data at a source, transmitting the compressed data to a receiver, and decompressing the data for playback. To this end, the ISO Moving Pictures Experts Group (MPEG) has adopted international standards for the generic coding of moving pictures and audio associated with those pictures. The international standard is set forth in draft form in a document entitled Coding of Moving Pictures and Associated Audio (ISO/IEC JTC1/SC29/WG11 N0801, published on Nov. 13, 1994, by the ISO/IEC Copyright Office, Geneva, Switzerland), which is hereby incorporated by reference. A first draft of the audio/video coding standard was referred to as MPEG-1, while a second draft of the standard is referred to as MPEG-2.
The MPEG-2 standard sets forth the syntax for an MPEG-2 transport stream that contains audio, video, and private data from several programs with different time bases, all of which are multiplexed together. On the encoding end, the data must be encoded by an MPEG-2 encoder into a transport stream. An MPEG-2 decoder must demultiplex and decode the MPEG-2 transport stream upon receipt at its destination.
Although audio and video decoders are available for decoding MPEG-2 compressed audio and video data, the MPEG-2 audio and video decoders have to date been perceived as too expensive to assemble and disseminate on a widespread basis, such as in homes. Instead, many content providers have adopted delivery systems wherein MPEG-1 audio and video data is carried in an MPEG-2 transport stream. MPEG-1 audio and video decoders are less expensive and commonly available. By minimizing the costs, companies hope to be able to provide video-on-demand or similar applications to the consumer market in a cost effective manner.
FIG. 1 illustrates the syntax of an MPEG-2 transport stream. The stream is divided into a number of 188-byte transport packets 20, with each transport packet including a header 22 and a payload 24. The header 22 begins with a 4-byte prefix, a portion of which is a packet identifier (PID) 26 specifying the contents of the payload. The header also includes other required and optional fields that assist in the synchronization and decoding of audio/video data at playback. The payload 24 comprises the data bytes that follow the header bytes in a transport packet. An MPEG-2 transport stream typically carries multiple programs which each have one or more elementary streams, e.g., an audio stream or a video stream. Because multiple programs can be multiplexed in a given MPEG-2 transport stream, different PID values are provided to distinguish between the audio, video, and private data streams provided for each program. Payloads from transport packets having the same PID contain an elementary stream corresponding to one of the programs in the transport stream. For example, a given PID may indicate transport packets from a video data stream of one program carried within the transport stream. A second PID may specify the audio stream of the same program.
Accurately demultiplexing and decoding an MPEG-2 transport stream has proven to be problematic for the industry. In particular, one of the shortcomings in many presently available MPEG-2 decoders is the inability to quickly acquire a program contained within the MPEG-2 transport stream. In order to acquire a given program within the transport stream, an MPEG-2 decoder must first interpret program specific information (PSI) that is contained within the stream. The PSI includes both normative data and private data that enables the programs to be demultiplexed. The MPEG-2 standard requires the PSI data to be divided into four table structures in the transport stream: (1) a program association table (PAT); (2) a program map table (PMT); (3) a network information table; and (4) a conditional access table. For purposes of the present application, the program association table and the program map table are the two PSI tables of interest.
The program association table is identified in the MPEG transport stream by a PID of 0.times.0000. The program association table contains a list of the programs contained within the MPEG-2 transport stream, and a PID that corresponds to a program map table for each program. When acquiring a new program from an MPEG-2 transport stream, an MPEG-2 decoder must first acquire the program association table to identify the PID corresponding to the desired program's program map table.
After identifying a PID for a desired program, an MPEG-2 decoder must acquire and interpret the program map table that corresponds to the program. The program map table specifies the PIDs for each of the elementary streams associated with the program. Each program in a transport stream typically includes a video elementary stream, one or more audio elementary streams, and one or more private elementary streams. For example, the first audio stream may be an English audio track for the video, and the second audio stream may be a Spanish track for the video. Each of the elementary streams of a given program is assigned a specific PID within the program map table. Once the PID of the elementary streams is determined, the MPEG-2 decoder may demultiplex and decode the transport packets within the MPEG-2 transport stream that correspond to the desired program.
The period it takes to acquire the program association table and the program map table in large part dictates the length of time before a selected program may be displayed to a viewer. At least two situations exist where it would be advantageous to minimize the acquisition time of a desired program from an MPEG-2 transport stream. First, it is important to minimize the acquisition time should errors in the transport stream cause the decoder to lose the transport stream signal. When recovering from an error received in the transport stream, it is desirable to quickly return to the program to minimize the disruption seen by the viewer. Second, it will be appreciated that the advent of remote controls has increased the practice of "channel surfing," i.e., the rapid switching between various channels in order to view a number of programs at a single sitting. The present analog technology used to transmit audio and video information has minimized the amount of time required to switch channels, making a channel change nearly instantaneous from a viewer's perspective. Viewers have therefore become accustomed to the ability to rapidly switch between a number of different programs.
The ability to quickly acquire a selected program has not been successfully duplicated in digital audio and video transmission systems. In large part, the failure to implement this feature has been a result of the processing performed in current MPEG-2 decoders. While there is no requirement in the MPEG standard as to how often the PSI tables are inserted into the transport stream, in a practical MPEG transport stream the tables will have to be inserted at least once a second. The conventional approach adopted by content providers is to insert the PSI tables 15 to 25 times a second, depending upon the available bandwidth of the transmission channel. Content providers have also adopted a convention of following the sending of a program association table with a program map table. The rationale is that by immediately following the program association table with the program map table, the MPEG-2 decoder will be able to rapidly acquire a desired program in the least amount of time.
The back-to-back presentation of PSI tables in an MPEG-2 transport stream is depicted in FIG. 2. Each transport packet 40 in the transport stream contains a header 42 identifying the data contained in the payload. In a typical transport stream, the PSI data carried in transport packets will be interspersed with transport packets carrying video data, audio data, and private data. In the depicted transport stream a payload of video data 44 is received, followed by a program association table 46, a program map table 48, and audio data 50. For purposes of this application, it will be assumed that the entire program association table and program map table may be contained in one transport packet. A single transport packet may contain a program association table defining approximately 30 programs, and a single transport packet may contain a program map table defining 20 different elementary streams for each program. In most anticipated video-on-demand applications, it is not necessary to produce a transport stream exceeding these figures.
It is believed that current systems for the demultiplexing and decoding of an MPEG-2 transport stream have failed to provide rapid program acquisition because they are unable to process back-to-back program association tables and program map tables. Prior art MPEG-2 decoders use a slave demultiplexer that is controlled by a microprocessor to correctly demultiplex the received data. In such prior art systems, upon receipt of a new MPEG-2 transport stream, the microprocessor initially instructs the demultiplexer to parse the program association table from the MPEG-2 stream. Once the microprocessor receives the program association table from the demultiplexer, the microprocessor directs the demultiplexer to load the desired program map table corresponding to a program listed in the program association table. The demultiplexer must then parse the program map table from the incoming MPEG-2 transport stream. After the program map table is provided to the microprocessor, the slave demultiplexer is instructed which video, audio, and private data transport packet PIDs are to be demultiplexed from the transport stream. Only then may the appropriate audio and video data selected by a viewer be provided to the audio and video decoders for decoding.
Because of the delays associated with transferring the program association table and program map table to the microprocessor, and the delays associated with the microprocessor selecting and transmitting to the demultiplexer the desired program to decode, current MPEG-2 decoders are unable to process back-to-back program association tables and program map tables. Therefore at least two, and perhaps more, program map tables must be received following the program association table before the program map table is provided to the microprocessor. While this delay may take only a fraction of a second, to the viewer who has become accustomed to the nearly instantaneous changing of channels, the delay is noticeable and can become annoying. In those situations where the PSI tables are inserted infrequently, it will be appreciated that the delay in acquiring new programs is substantially increased.
An improved MPEG-2 decoder that would minimize the acquisition time of a given program by quickly decoding a program association table and a program map table in an MPEG-2 transport stream would therefore be extremely advantageous.